// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`array.js 1`] = `
/* @flow */
var a = [];
for (var i = 0; i < 10; ++i) {
    if (i % 2 == 0) { a[i] = 0; }
    else { a[i] = ''; };
}

// \`i\` never gets a lower bound, so the array access is stalled until the
// function is called.
function foo(i): string { return a[i]; }

// here, because we call \`bar\`, we the array access constraint is discharged and
// we realize a type error.
function bar(i): string { return a[i]; }
bar(0);

// annotations suffice to unblock the access constraint as well, so only
// uncalled internal functions will not find a type error, which is acceptable
// behavior as such functions are dead code.
function baz(i:number): string { return a[i]; }
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/* @flow */
var a = [];
for (var i = 0; i < 10; ++i) {
  if (i % 2 == 0) {
    a[i] = 0;
  } else {
    a[i] = "";
  }
}

// \`i\` never gets a lower bound, so the array access is stalled until the
// function is called.
function foo(i): string {
  return a[i];
}

// here, because we call \`bar\`, we the array access constraint is discharged and
// we realize a type error.
function bar(i): string {
  return a[i];
}
bar(0);

// annotations suffice to unblock the access constraint as well, so only
// uncalled internal functions will not find a type error, which is acceptable
// behavior as such functions are dead code.
function baz(i: number): string {
  return a[i];
}

`;

exports[`array2.js 1`] = `
/* @flow */
var a = [];
for (var i = 0; i < 10; ++i) {
    if (i % 2 == 0) { a[i] = 0; }
    else { a[i] = ''; };
}

function foo(i: number): string { return a[i]; }
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/* @flow */
var a = [];
for (var i = 0; i < 10; ++i) {
  if (i % 2 == 0) {
    a[i] = 0;
  } else {
    a[i] = "";
  }
}

function foo(i: number): string {
  return a[i];
}

`;
